arrow funtionでassertion functionを定義する際は関数型で書かないといけない
assertion functionってconstで定義できないの?となったができるのはできる
こうではなく
code:ts
const assert = (val: unknown): asserts val is string => {..};
こう書くと、TS2775のエラーが出る
こう書かないといけない
funcitonで定義するなら自然にこう
code:ts
function assert(val: unknown): asserts val is string {..}
arrow functionの場合、なぜか関数型として書かないといけない
code:ts
const assert: (val: unknown) => asserts val is string = val => {..};
なので結局、assertion functionはfunctionで定義すると覚えた方が楽だねmrsekut.icon
整合性なくない?
元の書き方が許されていない意味がわからん
エラーがTS2775なのも意味がわからん
asserts x is type doesn't work when using arrow functions · Issue #34523 · microsoft/TypeScript · GitHub